#include "stm32f4xx.h"                  // Device header
#include "stm32f4xx_conf.h"
#include "LED.h"
#include "Buzzer.h"
#include "CAN.h"
#include "Delay.h"

/*====================	 报警列表	====================
	遥控器未连接	················1s里红灯连闪两下
	CAN总线设备连接异常	············2s内蜂鸣器以高音6响n下,n为连接异常的设备在ID列表的索引
	
  ======================================================*/

/*
 *函数简介:报警初始化
 *参数说明:无
 *返回类型:无
 *备注:报警功能用于各种错误的提示
 */
void Warming_Init(void)
{
	LED_Init();
	Buzzer_Init();
}

/*
 *函数简介:遥控器未连接报警
 *参数说明:无
 *返回类型:无
 *报警现象:1s里红灯连闪两下
 */
void Warming_RemoteNoCheck(void)
{
	LED_RON();Delay_ms(100);
	LED_ROFF();Delay_ms(100);
	Delay_ms(100);
	LED_RON();Delay_ms(100);
	LED_ROFF();Delay_ms(100);
	Delay_ms(500);
}

/*
 *函数简介:遥控器未连接报警
 *参数说明:无
 *返回类型:无
 *报警现象:1s里红灯连闪两下
 */
void Warming_RemoteDataERROR(void)
{
	LED_RON();Delay_ms(100);
	LED_ROFF();Delay_ms(100);
	Delay_ms(300);
}

/*
 *函数简介:CAN总线设备连接异常报警
 *参数说明:无
 *返回类型:无
 *报警现象:2s内蜂鸣器以高音6响n下,n为连接异常的设备在ID列表的索引(CAN.h文件中CAN_IDSelect变量)
 */
void Warming_LinkError(void)
{
	for(int j=0;j<CAN_IDSelect+1;j++)//高音6响CAN_IDSelect下
	{
		Buzzer_Time(H6,100);
		Delay_ms(100);
	}
	Delay_ms(2000-200*CAN_IDSelect);//补足2s延时
}

void Warming_IST8310LinkError(void)
{
	LED_GON();Delay_ms(100);
	LED_GOFF();Delay_ms(100);
	Delay_ms(800);
}

void Warming_BMI088LinkError(void)
{
	LED_GON();Delay_ms(100);
	LED_GOFF();Delay_ms(100);
	Delay_ms(100);
	LED_GON();Delay_ms(100);
	LED_GOFF();Delay_ms(100);
	Delay_ms(500);
}

void Warming_IMUTemperatureTooHigh(void)
{
	LED_GON();
}

void Warming_Stop(void)
{
	TIM_SetCompare1(TIM10,0);
}
